[INFO] cloning repository https://github.com/cptrodgers/mcpr
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/cptrodgers/mcpr" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcptrodgers%2Fmcpr", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcptrodgers%2Fmcpr'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1a5e7d6a4d7aeef06c834cc3f9142add63fb1d3d
[INFO] testing cptrodgers/mcpr against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcptrodgers%2Fmcpr" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-6-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/cptrodgers/mcpr
[INFO] finished tweaking git repo https://github.com/cptrodgers/mcpr
[INFO] tweaked toml for git repo https://github.com/cptrodgers/mcpr written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/cptrodgers/mcpr on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/cptrodgers/mcpr already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.114
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.114
[INFO] [stderr]   Downloaded mimalloc v0.1.50
[INFO] [stderr]   Downloaded clap_lex v1.0.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.114
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.64
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.114
[INFO] [stderr]   Downloaded tokio-tungstenite v0.29.0
[INFO] [stderr]   Downloaded sha2 v0.11.0
[INFO] [stderr]   Downloaded arc-swap v1.9.1
[INFO] [stderr]   Downloaded tungstenite v0.29.0
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.42
[INFO] [stderr]   Downloaded js-sys v0.3.91
[INFO] [stderr]   Downloaded cc v1.2.56
[INFO] [stderr]   Downloaded tower-http v0.6.10
[INFO] [stderr]   Downloaded axum v0.8.9
[INFO] [stderr]   Downloaded zerocopy v0.8.42
[INFO] [stderr]   Downloaded libmimalloc-sys v0.1.47
[INFO] [stderr]   Downloaded web-sys v0.3.91
[INFO] [stderr]   Downloaded libc v0.2.183
[INFO] [stderr]   Downloaded sqlite-wasm-rs v0.5.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 485e0fa5a0788639076aff380da14bdd71b2eb6d0fa9a9c1a00ecf36e2b373aa
[INFO] running `Command { std: "docker" "start" "-a" "485e0fa5a0788639076aff380da14bdd71b2eb6d0fa9a9c1a00ecf36e2b373aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "485e0fa5a0788639076aff380da14bdd71b2eb6d0fa9a9c1a00ecf36e2b373aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "485e0fa5a0788639076aff380da14bdd71b2eb6d0fa9a9c1a00ecf36e2b373aa", kill_on_drop: false }`
[INFO] [stdout] 485e0fa5a0788639076aff380da14bdd71b2eb6d0fa9a9c1a00ecf36e2b373aa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 88ab0f93f8f14079435d0f17040e58057f168391d13e128be68ac4624210d1da
[INFO] running `Command { std: "docker" "start" "-a" "88ab0f93f8f14079435d0f17040e58057f168391d13e128be68ac4624210d1da", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling hybrid-array v0.4.10
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling libsqlite3-sys v0.37.0
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling libmimalloc-sys v0.1.47
[INFO] [stderr]    Compiling crypto-common v0.2.1
[INFO] [stderr]    Compiling block-buffer v0.12.0
[INFO] [stderr]    Compiling pem v3.0.6
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling digest v0.11.2
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling arc-swap v1.9.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling hashlink v0.11.0
[INFO] [stderr]    Compiling winnow v1.0.1
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling fuzzy-matcher v0.3.7
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling colored v3.1.1
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling mimalloc v0.1.50
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tungstenite v0.29.0
[INFO] [stderr]    Compiling simple_asn1 v0.6.4
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling inquire v0.9.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling jsonwebtoken v9.3.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-tungstenite v0.29.0
[INFO] [stderr]    Compiling rusqlite v0.39.0
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tower-http v0.6.10
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling mcpr-core v0.5.44 (/opt/rustwide/workdir/crates/mcpr-core)
[INFO] [stderr]    Compiling mcpr-integrations v0.5.44 (/opt/rustwide/workdir/crates/mcpr-integrations)
[INFO] [stderr]    Compiling mcpr-proxy v0.5.44 (/opt/rustwide/workdir/crates/mcpr-cli)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 27s
[INFO] running `Command { std: "docker" "inspect" "88ab0f93f8f14079435d0f17040e58057f168391d13e128be68ac4624210d1da", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "88ab0f93f8f14079435d0f17040e58057f168391d13e128be68ac4624210d1da", kill_on_drop: false }`
[INFO] [stdout] 88ab0f93f8f14079435d0f17040e58057f168391d13e128be68ac4624210d1da
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ead4fb87e2dfa611fe55ac12dc20141d5c0a864d7965eb8b21d6be48dabdb213
[INFO] running `Command { std: "docker" "start" "-a" "ead4fb87e2dfa611fe55ac12dc20141d5c0a864d7965eb8b21d6be48dabdb213", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling inquire v0.9.4
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-tungstenite v0.29.0
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tower-http v0.6.10
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling mcpr-core v0.5.44 (/opt/rustwide/workdir/crates/mcpr-core)
[INFO] [stderr]    Compiling mcpr-integrations v0.5.44 (/opt/rustwide/workdir/crates/mcpr-integrations)
[INFO] [stderr]    Compiling mcpr-proxy v0.5.44 (/opt/rustwide/workdir/crates/mcpr-cli)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 00s
[INFO] running `Command { std: "docker" "inspect" "ead4fb87e2dfa611fe55ac12dc20141d5c0a864d7965eb8b21d6be48dabdb213", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ead4fb87e2dfa611fe55ac12dc20141d5c0a864d7965eb8b21d6be48dabdb213", kill_on_drop: false }`
[INFO] [stdout] ead4fb87e2dfa611fe55ac12dc20141d5c0a864d7965eb8b21d6be48dabdb213
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3a39ff811fabf1475628fb4ac570197d527bf21b96093d26941a300b68855e70
[INFO] running `Command { std: "docker" "start" "-a" "3a39ff811fabf1475628fb4ac570197d527bf21b96093d26941a300b68855e70", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.51s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/mcpr_core-28c5e60e3c86c891)
[INFO] [stdout] 
[INFO] [stdout] running 414 tests
[INFO] [stdout] test auth::parse::tests::compute_fingerprint__different_tokens_differ ... ok
[INFO] [stdout] test auth::parse::tests::parse_request_auth__basic_records_scheme_only ... ok
[INFO] [stdout] test auth::parse::tests::parse_request_auth__bearer_alg_none_classifies_as_opaque ... ok
[INFO] [stdout] test auth::parse::tests::compute_fingerprint__same_token_stable_in_process ... ok
[INFO] [stdout] test auth::parse::tests::compute_fingerprint__has_expected_shape ... ok
[INFO] [stdout] test auth::parse::tests::parse_request_auth__bearer_opaque_when_not_three_parts ... ok
[INFO] [stdout] test auth::parse::tests::parse_request_auth__jwt_aud_array_yields_multi ... ok
[INFO] [stdout] test auth::parse::tests::parse_request_auth__scheme_is_case_insensitive_for_bearer_decode ... ok
[INFO] [stdout] test auth::parse::tests::parse_www_authenticate__absent_returns_none ... ok
[INFO] [stdout] test auth::parse::tests::parse_request_auth__no_header_returns_default ... ok
[INFO] [stdout] test auth::parse::tests::parse_www_authenticate__bearer_with_full_params ... ok
[INFO] [stdout] test auth::parse::tests::parse_request_auth__jwt_scopes_array_field ... ok
[INFO] [stdout] test auth::parse::tests::parse_www_authenticate__param_keys_case_insensitive ... ok
[INFO] [stdout] test auth::parse::tests::parse_request_auth__custom_scheme_recorded ... ok
[INFO] [stdout] test auth::parse::tests::parse_request_auth__records_header_name ... ok
[INFO] [stdout] test auth::parse::tests::parse_request_auth__bearer_jwt_full_claims ... ok
[INFO] [stdout] test auth::parse::tests::parse_www_authenticate__scheme_only ... ok
[INFO] [stdout] test auth::parse::tests::parse_request_auth__bearer_opaque_when_payload_not_json ... ok
[INFO] [stdout] test auth::parse::tests::parse_request_auth__jwt_extra_claims_captured ... ok
[INFO] [stdout] test auth::parse::tests::parse_request_auth__bearer_opaque_when_payload_not_base64 ... ok
[INFO] [stdout] test auth::parse::tests::parse_www_authenticate__unknown_params_dropped ... ok
[INFO] [stdout] test auth::parse::tests::parse_www_authenticate__quoted_string_with_escape ... ok
[INFO] [stdout] test auth::provider_reflect::tests::discovery_url_for__keeps_origin_drops_path_and_query ... ok
[INFO] [stdout] test auth::provider_reflect::tests::discovery_url_for__drops_query_string ... ok
[INFO] [stdout] test auth::provider_reflect::tests::discovery_url_for__preserves_https_and_port ... ok
[INFO] [stdout] test auth::provider_static::tests::handle__protected_resource_metadata_serves_configured_doc ... ok
[INFO] [stdout] test auth::provider_static::tests::handle__non_protected_resource_paths_forward ... ok
[INFO] [stdout] test event::openai::tests::from_jsonrpc_request__no_meta_returns_none ... ok
[INFO] [stdout] test event::openai::tests::from_jsonrpc_request__no_params_returns_none ... ok
[INFO] [stdout] test event::openai::tests::from_jsonrpc_request__non_object_meta_returns_none ... ok
[INFO] [stdout] test event::openai::tests::from_jsonrpc_request__non_string_id_fields_are_dropped ... ok
[INFO] [stdout] test event::openai::tests::from_jsonrpc_request__partial_meta_only_fills_present_fields ... ok
[INFO] [stdout] test event::openai::tests::from_jsonrpc_request__pulls_all_six_openai_keys ... ok
[INFO] [stdout] test auth::provider_reflect::tests::probe__errors_on_invalid_json ... ok
[INFO] [stdout] test auth::provider_reflect::tests::probe__errors_on_non_2xx ... ok
[INFO] [stdout] test event::openai::tests::from_jsonrpc_request__user_location_kept_as_opaque_value ... ok
[INFO] [stdout] test event::openai::tests::from_jsonrpc_request__meta_without_openai_keys_returns_none ... ok
[INFO] [stdout] test auth::provider_reflect::tests::probe__returns_provider_with_cached_metadata ... ok
[INFO] [stdout] test event::openai::tests::from_request__batch_uses_first_rpc ... ok
[INFO] [stdout] test event::openai::tests::from_request__empty_batch_returns_none ... ok
[INFO] [stdout] test event::openai::tests::from_request__mcp_delegates_to_jsonrpc_parser ... ok
[INFO] [stdout] test event::openai::tests::serde__roundtrip_preserves_all_fields ... ok
[INFO] [stdout] test event::types::tests::slim_resources_in_place__id_with_no_method_mapping_is_untouched ... ok
[INFO] [stdout] test event::types::tests::slim_resources_in_place__http_variant_is_noop ... ok
[INFO] [stdout] test event::types::tests::slim_resources_in_place__resources_read_drops_blob_payload ... ok
[INFO] [stdout] test event::types::tests::slim_resources_in_place__resources_read_drops_html_text_and_meta ... ok
[INFO] [stdout] test event::types::tests::slim_resources_in_place__missing_array_yields_empty_array ... ok
[INFO] [stdout] test event::openai::tests::serde__omits_none_fields ... ok
[INFO] [stdout] test event::types::tests::slim_resources_in_place__batch_slims_each_item_by_its_method ... ok
[INFO] [stdout] test event::types::tests::slim_resources_in_place__resources_list_keeps_only_uri_and_name ... ok
[INFO] [stdout] test auth::provider_reflect::tests::handle__non_protected_resource_paths_forward ... ok
[INFO] [stdout] test event::openai::tests::from_request__http_returns_none ... ok
[INFO] [stdout] test event::types::tests::slim_resources_in_place__error_response_is_untouched ... ok
[INFO] [stdout] test event::types::tests::slim_resources_in_place__non_resource_method_is_untouched ... ok
[INFO] [stdout] test protocol::mcp::tests::client_method__as_str_unknown_returns_none ... ok
[INFO] [stdout] test protocol::mcp::tests::client_method__deserialize_known ... ok
[INFO] [stdout] test protocol::mcp::tests::client_method__deserialize_unknown ... ok
[INFO] [stdout] test protocol::mcp::tests::client_method__parse_logging_set_level ... ok
[INFO] [stdout] test protocol::mcp::tests::client_method__parse_resources_templates_list ... ok
[INFO] [stdout] test protocol::mcp::tests::client_method__parse_tasks_get ... ok
[INFO] [stdout] test protocol::mcp::tests::client_method__parse_tools_call ... ok
[INFO] [stdout] test protocol::mcp::tests::client_method__parse_ping ... ok
[INFO] [stdout] test protocol::mcp::tests::client_method__roundtrip_each_family ... ok
[INFO] [stdout] test protocol::mcp::tests::client_method__parse_prompts_get ... ok
[INFO] [stdout] test protocol::mcp::tests::client_method__parse_unknown_preserves_string ... ok
[INFO] [stdout] test protocol::mcp::tests::client_method__serializes_as_string ... ok
[INFO] [stdout] test protocol::mcp::tests::get_resource_uri__none_for_resources_list ... ok
[INFO] [stdout] test protocol::mcp::tests::client_notif__parse_known ... ok
[INFO] [stdout] test protocol::mcp::tests::get_resource_uri__none_when_params_missing ... ok
[INFO] [stdout] test protocol::mcp::tests::client_notif__parse_unknown_falls_back ... ok
[INFO] [stdout] test protocol::mcp::tests::client_method__parse_initialize ... ok
[INFO] [stdout] test event::types::tests::slim_resources_in_place__resources_templates_list_keeps_uri_template_and_name ... ok
[INFO] [stdout] test protocol::mcp::tests::get_prompt__none_when_params_missing ... ok
[INFO] [stdout] test protocol::mcp::tests::get_tool__none_for_tools_list ... ok
[INFO] [stdout] test protocol::mcp::tests::get_resource_uri__unsubscribe ... ok
[INFO] [stdout] test protocol::mcp::tests::client_method__serialize_unknown_preserves_string ... ok
[INFO] [stdout] test protocol::mcp::tests::client_method__parse_completion_complete ... ok
[INFO] [stdout] test protocol::mcp::tests::get_tool__none_when_name_not_string ... ok
[INFO] [stdout] test protocol::mcp::tests::get_resource_uri__read ... ok
[INFO] [stdout] test protocol::mcp::tests::get_prompt__returns_name_for_prompts_get ... ok
[INFO] [stdout] test protocol::mcp::tests::get_tool__returns_name_for_tools_call ... ok
[INFO] [stdout] test protocol::mcp::tests::get_resource_uri__subscribe ... ok
[INFO] [stdout] test protocol::mcp::tests::jsonrpc_request__params_skipped_when_none ... ok
[INFO] [stdout] test protocol::mcp::tests::get_prompt__none_for_prompts_list ... ok
[INFO] [stdout] test protocol::mcp::tests::jsonrpc_request__rejects_wrong_version ... ok
[INFO] [stdout] test protocol::mcp::tests::jsonrpc_request__roundtrip ... ok
[INFO] [stdout] test protocol::mcp::tests::jsonrpc_request__method_serialized_as_plain_string ... ok
[INFO] [stdout] test protocol::mcp::tests::get_tool__none_when_params_missing ... ok
[INFO] [stdout] test protocol::mcp::tests::jsonrpc_result__parses_response_shape ... ok
[INFO] [stdout] test protocol::mcp::tests::jsonrpc_version__accepts_2_0 ... ok
[INFO] [stdout] test protocol::mcp::tests::jsonrpc_version__rejects_non_string ... ok
[INFO] [stdout] test protocol::mcp::tests::jsonrpc_version__serializes_as_2_0 ... ok
[INFO] [stdout] test protocol::mcp::tests::parse_client_info__missing_clientinfo_is_none ... ok
[INFO] [stdout] test protocol::mcp::tests::parse_client_info__missing_name_is_none ... ok
[INFO] [stdout] test protocol::mcp::tests::jsonrpc_result__bare_error_is_rejected ... ok
[INFO] [stdout] test protocol::mcp::tests::parse_client_info__name_and_version ... ok
[INFO] [stdout] test protocol::mcp::tests::jsonrpc_result__parses_error_envelope_shape ... ok
[INFO] [stdout] test protocol::mcp::tests::parse_client_info__name_only ... ok
[INFO] [stdout] test protocol::mcp::tests::jsonrpc_result__parses_error_envelope_with_null_id ... ok
[INFO] [stdout] test protocol::mcp::tests::jsonrpc_version__rejects_other_strings ... ok
[INFO] [stdout] test protocol::mcp::tests::request_id__deserializes_null ... ok
[INFO] [stdout] test protocol::mcp::tests::request_id__deserializes_bare_string ... ok
[INFO] [stdout] test protocol::mcp::tests::parse_client_info__non_string_name_is_none ... ok
[INFO] [stdout] test protocol::mcp::tests::request_id__number_serializes_as_bare_number ... ok
[INFO] [stdout] test protocol::mcp::tests::request_id__null_serializes_as_json_null ... ok
[INFO] [stdout] test protocol::mcp::tests::request_id__string_serializes_as_bare_string ... ok
[INFO] [stdout] test protocol::mcp::tests::server_method__as_str_unknown_returns_none ... ok
[INFO] [stdout] test protocol::mcp::tests::server_method__parse_unit_variants ... ok
[INFO] [stdout] test protocol::mcp::tests::server_method__roundtrip_each_family ... ok
[INFO] [stdout] test protocol::mcp::tests::server_method__parse_tasks_newtype ... ok
[INFO] [stdout] test protocol::mcp::tests::server_method__serialize_tasks_newtype ... ok
[INFO] [stdout] test protocol::mcp::tests::server_method__parse_unknown_preserves_string ... ok
[INFO] [stdout] test protocol::mcp::tests::server_method__serializes_as_string ... ok
[INFO] [stdout] test protocol::mcp::tests::server_method__deserialize_unknown ... ok
[INFO] [stdout] test protocol::mcp::tests::parse_client_info__none_when_params_missing ... ok
[INFO] [stdout] test event::tests::routes_to_single_sink ... ok
[INFO] [stdout] test protocol::schema::tests::add_tool__identical_reinsert_returns_none ... ok
[INFO] [stdout] test protocol::schema::tests::add_tool__identical_reinsert_with_different_reason_returns_none ... ok
[INFO] [stdout] test protocol::schema::tests::add_tool__input_schema_change_replaces ... ok
[INFO] [stdout] test protocol::mcp::tests::server_notif__parse_known ... ok
[INFO] [stdout] test protocol::mcp::tests::server_notif__parse_unknown_falls_back ... ok
[INFO] [stdout] test protocol::mcp::tests::request_id__deserializes_bare_number ... ok
[INFO] [stdout] test protocol::schema::tests::add_tool__keys_by_tool_name ... ok
[INFO] [stdout] test protocol::schema::tests::resource__serializes_uri_and_mime_type ... ok
[INFO] [stdout] test protocol::schema::tests::resource_template__serializes_uri_template ... ok
[INFO] [stdout] test protocol::session::tests::end_session__leaves_other_sessions_intact ... ok
[INFO] [stdout] test protocol::session::tests::end_session__removes_session_and_reverse_entries ... ok
[INFO] [stdout] test protocol::session::tests::get_session__missing_is_none ... ok
[INFO] [stdout] test protocol::schema::tests::tool__roundtrip_preserves_all_fields ... ok
[INFO] [stdout] test protocol::schema::tests::tool__serializes_optional_fields_with_camel_case ... ok
[INFO] [stdout] test protocol::session::tests::end_session__missing_id_is_noop ... ok
[INFO] [stdout] test protocol::schema::tests::add_tool__new_tool_returns_change_with_reason ... ok
[INFO] [stdout] test protocol::schema::tests::add_tool__title_change_replaces ... ok
[INFO] [stdout] test protocol::schema::tests::prompt__roundtrip_preserves_arguments ... ok
[INFO] [stdout] test protocol::schema::tests::tool__omits_unset_optional_fields ... ok
[INFO] [stdout] test protocol::session::tests::get_session_by_request__missing_is_none ... ok
[INFO] [stdout] test protocol::session::tests::get_session_by_request__string_request_id ... ok
[INFO] [stdout] test event::tests::works_with_no_sinks ... ok
[INFO] [stdout] test event::tests::drains_channel_on_shutdown ... ok
[INFO] [stdout] test event::tests::flushes_on_shutdown ... ok
[INFO] [stdout] test protocol::session::tests::list_sessions__empty ... ok
[INFO] [stdout] test event::tests::routes_to_multiple_sinks ... ok
[INFO] [stdout] test protocol::session::tests::session_id_from_headers__missing_returns_none ... ok
[INFO] [stdout] test protocol::session::tests::session_id_from_headers__present_returns_id ... ok
[INFO] [stdout] test protocol::session::tests::start_session__creates_with_client_and_server_info ... ok
[INFO] [stdout] test protocol::session::tests::session_info_new__captures_client_info ... ok
[INFO] [stdout] test protocol::session::tests::session_id_from_headers__non_utf8_returns_none ... ok
[INFO] [stdout] test protocol::session::tests::session_info_new__seeds_first_request ... ok
[INFO] [stdout] test protocol::session::tests::start_session__second_call_for_same_id_is_noop ... ok
[INFO] [stdout] test protocol::session::tests::track_request__after_start_session_keeps_initial_metadata ... ok
[INFO] [stdout] test protocol::session::tests::start_session__writes_reverse_index ... ok
[INFO] [stdout] test protocol::session::tests::session_info_merge__appends_requests_and_count ... ok
[INFO] [stdout] test protocol::session::tests::session_info_merge__ignores_mismatched_id ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frame_stream__chunk_ends_with_carriage_return ... ok
[INFO] [stdout] test protocol::session::tests::track_request__appends_to_existing_session ... ok
[INFO] [stdout] test protocol::session::tests::track_request__creates_session_when_missing_with_no_metadata ... ok
[INFO] [stdout] test protocol::session::tests::track_request__duplicate_request_across_sessions_returns_none ... ok
[INFO] [stdout] test protocol::session::tests::track_request__duplicate_request_returns_none ... ok
[INFO] [stdout] test protocol::session::tests::track_request__writes_reverse_index ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frame_stream__frame_split_across_chunks ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frame_stream__empty_body_yields_nothing ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frame_stream__multiple_frames_in_one_chunk ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frame_stream__single_frame_in_one_chunk ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frame_stream__keepalive_comment_skipped ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frames__comment_lines_ignored ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frame_stream__trailing_partial_frame_dropped ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frame_stream__yields_frame_before_body_ends ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frames__empty_input_returns_empty ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frames__field_value_strips_one_leading_space_only ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frames__no_event_field_treated_as_message ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frame_stream__chunk_ends_mid_field_name ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frames__crlf_line_endings ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frame_stream__non_message_event_dropped ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frames__cr_line_endings ... ok
[INFO] [stdout] test protocol::session::tests::track_request__updates_last_active ... ok
[INFO] [stdout] test protocol::session::tests::list_sessions__track_request_promotes_session ... ok
[INFO] [stdout] test protocol::session::tests::list_sessions__sorted_by_last_active_desc ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frames__multiple_frames_in_order ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frames__non_message_event_dropped ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frames__trailing_partial_frame_dropped ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frames__blank_line_without_data_emits_nothing ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frames__unknown_field_ignored ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frames__single_message_frame ... ok
[INFO] [stdout] test protocol::sse::tests::encode_one__matches_encode_results_for_single_input ... ok
[INFO] [stdout] test protocol::sse::tests::encode_results__empty_input_returns_empty ... ok
[INFO] [stdout] test protocol::sse::tests::encode_one__produces_single_frame ... ok
[INFO] [stdout] test protocol::sse::tests::decode_frames__multiline_data_joined_with_newline ... ok
[INFO] [stdout] test protocol::sse::tests::encode_results__single_result_one_frame ... ok
[INFO] [stdout] test protocol::tests::is_json__application_json_returns_true ... ok
[INFO] [stdout] test protocol::tests::is_json__missing_header_returns_false ... ok
[INFO] [stdout] test protocol::tests::is_json__text_event_stream_returns_false ... ok
[INFO] [stdout] test protocol::tests::is_json__with_charset_returns_true ... ok
[INFO] [stdout] test protocol::tests::json_shape__array ... ok
[INFO] [stdout] test protocol::tests::json_shape__empty_returns_other ... ok
[INFO] [stdout] test protocol::tests::json_shape__leading_whitespace_skipped ... ok
[INFO] [stdout] test protocol::tests::json_shape__non_json_returns_other ... ok
[INFO] [stdout] test protocol::tests::json_shape__object ... ok
[INFO] [stdout] test protocol::tests::request_from_axum__empty_body_falls_back_to_http ... ok
[INFO] [stdout] test protocol::tests::request_from_axum__jsonrpc_array_returns_mcp_batch ... ok
[INFO] [stdout] test protocol::tests::request_from_axum__malformed_jsonrpc_array_falls_back_to_http ... ok
[INFO] [stdout] test protocol::sse::tests::encode_results__multiple_results_concatenated_frames ... ok
[INFO] [stdout] test protocol::tests::request_from_axum__http_preserves_method_and_headers ... ok
[INFO] [stdout] test protocol::sse::tests::encode_results__roundtrip_through_decoder ... ok
[INFO] [stdout] test protocol::tests::request_from_axum__non_jsonrpc_json_falls_back_to_http ... ok
[INFO] [stdout] test protocol::tests::request_from_axum__single_jsonrpc_returns_mcp ... ok
[INFO] [stdout] test protocol::tests::response_from_hyper__http_preserves_status_and_headers ... ok
[INFO] [stdout] test protocol::tests::response_from_hyper__sse_empty_body_falls_back_to_http ... ok
[INFO] [stdout] test protocol::tests::response_from_hyper__jsonrpc_array_returns_mcp_batch ... ok
[INFO] [stdout] test protocol::tests::request_from_axum__non_json_content_type_falls_back_to_http ... ok
[INFO] [stdout] test protocol::tests::response_from_hyper__sse_only_unparseable_frames_falls_back_to_http ... ok
[INFO] [stdout] test protocol::tests::request_from_axum__mcp_preserves_inbound_headers ... ok
[INFO] [stdout] test proxy2::csp::tests::csp_config__default_strict_frames ... ok
[INFO] [stdout] test protocol::tests::response_from_hyper__sse_preserves_upstream_headers ... ok
[INFO] [stdout] test protocol::tests::response_from_hyper__sse_with_single_message_frame_returns_mcp ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__base_uri_directive_default_is_empty_not_proxy ... ok
[INFO] [stdout] test protocol::tests::response_from_hyper__non_json_content_type_falls_back_to_http ... ok
[INFO] [stdout] test protocol::tests::response_from_hyper__mcp_preserves_upstream_headers ... ok
[INFO] [stdout] test protocol::tests::response_from_hyper__sse_with_multiple_message_frames_returns_mcp_batch ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__empty_upstream_host_disables_self_stripping ... ok
[INFO] [stdout] test protocol::tests::response_from_hyper__sse_drops_non_message_frames_keeps_response ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__base_uri_directive_passes_declared_without_proxy ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__frame_directive_with_declared_domains_omits_proxy ... ok
[INFO] [stdout] test protocol::tests::response_from_hyper__single_jsonrpc_returns_mcp ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__multiple_matching_widgets_apply_in_config_order ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__redirect_directive_default_is_empty_not_proxy ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__base_uri_widget_override_applies ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__connect_and_resource_still_get_proxy_prepend ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__dedupes_across_sources ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__dedupes_proxy_url_already_in_upstream ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__extend_adds_global_domains ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__extend_keeps_external_drops_upstream_host ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__frame_directive_default_is_empty_not_proxy ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__redirect_directive_passes_declared_without_proxy ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__strips_localhost ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__widget_extend_adds_on_top_of_global ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__strips_upstream_host ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__widget_extend_with_empty_domains_is_noop ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__replace_with_empty_global_leaves_only_proxy ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__widget_replace_with_empty_domains_clears_list ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__widget_with_no_matching_uri_is_ignored ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__redirect_widget_override_applies ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__replace_ignores_upstream ... ok
[INFO] [stdout] test proxy2::csp::tests::glob__literal_mismatch ... ok
[INFO] [stdout] test proxy2::csp::tests::glob__empty_pattern_matches_empty_string_only ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__skips_prepend_when_proxy_url_empty ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__widget_replace_wipes_everything_before_it ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__widget_without_uri_context_falls_back_to_global ... ok
[INFO] [stdout] test proxy2::csp::tests::glob__double_star_segment ... ok
[INFO] [stdout] test proxy2::csp::tests::glob__literal_match ... ok
[INFO] [stdout] test proxy2::csp::tests::effective__skips_prepend_when_proxy_is_localhost ... ok
[INFO] [stdout] test proxy2::csp::tests::glob__question_matches_single_char ... ok
[INFO] [stdout] test proxy2::csp::tests::glob__star_matches_any_sequence ... ok
[INFO] [stdout] test proxy2::csp::tests::glob__star_matches_suffix ... ok
[INFO] [stdout] test proxy2::csp::tests::glob__star_only_matches_anything ... ok
[INFO] [stdout] test proxy2::csp::tests::mode__default_is_extend ... ok
[INFO] [stdout] test proxy2::csp::tests::mode__deserialises_replace ... ok
[INFO] [stdout] test proxy2::csp::tests::mode__display ... ok
[INFO] [stdout] test proxy2::csp::tests::public_origin__accepts_https_host ... ok
[INFO] [stdout] test proxy2::csp::tests::public_origin__rejects_empty ... ok
[INFO] [stdout] test proxy2::csp::tests::public_origin__rejects_loopback_ip ... ok
[INFO] [stdout] test proxy2::csp::tests::ui_resource__accepts_ui_scheme ... ok
[INFO] [stdout] test proxy2::csp::tests::ui_resource__rejects_other_schemes ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::auth_config__defaults_bearer_methods_to_header ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::auth_config__defaults_resource_from_port ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::auth_config__honours_explicit_resource_override ... ok
[INFO] [stdout] test proxy2::csp::tests::public_origin__rejects_localhost ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::auth_config__metadata_round_trip ... ok
[INFO] [stdout] test proxy2::csp::tests::mode__deserialises_extend ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::auth_config__rejects_empty_authorization_servers ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::csp_config__base_uri_and_redirect_default_to_empty_extend ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::csp_config__base_uri_and_redirect_directives_parse ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::csp_config__canonical_overrides_legacy_when_both_present ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::csp_config__canonical_shape_parses ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::csp_config__domain_parses ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::csp_config__domain_whitespace_is_trimmed_and_empty_ignored ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::csp_config__legacy_flat_shape_populates_connect_and_resource ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::csp_config__empty_defaults_strict_frames ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::file_auth_config__optional_when_absent ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::file_auth_config__parses_authorization_servers ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::resolve_proxy_name__from_filename_stem ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::file_proxy_config__body_size_defaults_to_none ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::resolve_proxy_name__mcpr_toml_becomes_default ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::resolve_proxy_name__no_config_becomes_default ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::file_proxy_config__max_concurrent_upstream ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::resolve_proxy_name__explicit_wins ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::resolve_proxy_name__preserves_hyphens ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::file_proxy_config__max_request_body_size ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::from_proxy_config__copies_csp_policies ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::file_proxy_config__max_response_body_size ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::file_proxy_config__name_from_toml ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::parse_mode__accepts_known_values ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::parse_mode__rejects_unknown ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::resolve__auth_absent_when_block_missing ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::resolve__name_defaults_to_default_when_no_path ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::resolve__name_from_explicit_field ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::csp_config__legacy_override_maps_to_replace ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::from_proxy_config__domain_set_builds_https_url ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::from_proxy_config__domain_unset_signals_local_only ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::resolve__threads_auth_through ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::is_widget_meta__ui_uri_is_widget_even_with_empty_meta ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::resolve_proxy_name__sanitizes_special_chars ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::is_widget_meta__plain_meta_with_non_ui_uri_is_not_widget ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::is_widget_meta__non_ui_uri_alone_is_not_widget ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__deep_scan_injects_proxy_into_nested_csp ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__error_result_passes_through ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__arc_swap_hot_reload_uses_new_config ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__base_uri_domains_round_trip ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::is_widget_meta__widget_meta_keys_promote_non_ui_uri ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__http_response_passes_through ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__local_only_skips_proxy_injection ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__mcp_batch_rewrites_each_response ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__from_swap_shares_handle_with_caller ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__deep_scan_skips_frame_arrays ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__frame_domains_omits_proxy_url ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::file_proxy_config__missing_mcp_fails_deserialize ... ok
[INFO] [stdout] test proxy2::proxy_config::tests::resolve__name_from_filename_when_field_unset ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__missing_result_is_left_none ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__mcp_batch_skips_error_items ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__resources_list_skips_non_ui_uri ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__operator_base_uri_extends_upstream ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__resources_list_rewrites_non_ui_uri_when_meta_declares_widget ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__resources_list_widget_scope_matches_uri ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__resources_templates_list_rewrites_widget_meta ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__redirect_domains_round_trip ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__tools_list_deep_scan_repairs_misplaced_csp ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::classify_upstream__json_returns_single_mcp ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__resources_list_synthesizes_meta_from_uri ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::classify_upstream__sse_carries_envelope_parts_on_router_output ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__tools_call_non_widget_meta_is_not_polluted ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__resources_read_skips_non_ui_uri ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__resources_list_skips_when_no_uri_and_no_meta ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::classify_upstream__sse_drops_non_message_and_unparseable_frames ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__operator_redirect_extends_upstream ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__tools_call_no_longer_synthesizes_widget_meta ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__tools_list_no_longer_synthesizes_widget_meta ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::classify_upstream__sse_returns_stream ... ok
[INFO] [stdout] test proxy2::stage::csp_rewritten_stage::tests::process__resources_read_preserves_html_text ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::classify_upstream__sse_stream_yields_each_message_frame ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::classify_upstream__sse_preserves_upstream_headers_on_stream_items ... ok
[INFO] [stdout] test proxy2::stage::schema_tracking_stage::tests::process__empty_request_context_emits_nothing ... ok
[INFO] [stdout] test proxy2::stage::schema_tracking_stage::tests::process__error_response_emits_nothing ... ok
[INFO] [stdout] test proxy2::stage::schema_tracking_stage::tests::process__mcp_batch_dispatches_each_item_by_method ... ok
[INFO] [stdout] test proxy2::stage::schema_tracking_stage::tests::process__missing_tools_array_emits_nothing ... ok
[INFO] [stdout] test proxy2::stage::schema_tracking_stage::tests::process__malformed_tool_entry_is_skipped ... ok
[INFO] [stdout] test proxy2::stage::schema_tracking_stage::tests::process__non_tools_list_method_skips_tracking_even_with_tools_field ... ok
[INFO] [stdout] test proxy2::stage::schema_tracking_stage::tests::process__prompts_list_emits_prompt_event_per_entry ... ok
[INFO] [stdout] test proxy2::stage::schema_tracking_stage::tests::process__resource_templates_list_emits_resource_template_event_per_entry ... ok
[INFO] [stdout] test proxy2::stage::schema_tracking_stage::tests::process__resources_list_emits_resource_event_per_entry ... ok
[INFO] [stdout] test proxy2::stage::schema_tracking_stage::tests::process__prompts_list_skips_malformed_entry ... ok
[INFO] [stdout] test proxy2::stage::schema_tracking_stage::tests::process__tools_list_emits_every_call_without_dedup ... ok
[INFO] [stdout] test proxy2::stage::schema_tracking_stage::tests::process__tools_list_emits_schema_event_per_new_tool ... ok
[INFO] [stdout] test proxy2::stage::schema_tracking_stage::tests::process__unsupported_method_emits_nothing ... ok
[INFO] [stdout] test proxy2::stage::session_tracking_stage::tests::delete_response__ends_known_session ... ok
[INFO] [stdout] test proxy2::stage::session_tracking_stage::tests::followup_request__bumps_activity_keeps_initialize_metadata ... ok
[INFO] [stdout] test proxy2::stage::session_tracking_stage::tests::followup_request__without_existing_session_creates_stub ... ok
[INFO] [stdout] test proxy2::stage::session_tracking_stage::tests::initialize_response__creates_session_with_client_and_server_info ... ok
[INFO] [stdout] test proxy2::stage::session_tracking_stage::tests::initialize_response__without_session_header_is_noop ... ok
[INFO] [stdout] test proxy2::stage::session_tracking_stage::tests::non_delete_http_response__does_not_close ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::process__mcp_batch_returns_results_in_request_order ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::process__mcp_response_carries_upstream_headers ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::open_get_sse__returns_headers_before_first_frame ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::process__mcp_request_forwards_to_upstream_and_returns_response ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::process__mcp_request_errors_when_upstream_returns_non_jsonrpc_body ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::open_get_sse__forwards_session_and_last_event_id_headers ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::process__http_request_forwards_authorization_header ... ok
[INFO] [stdout] test proxy2::stage::tests::upstream_us_from_spans__collapses_to_router_when_body_absent ... ok
[INFO] [stdout] test proxy2::stage::tests::upstream_us_from_spans__sums_router_and_upstream_body ... ok
[INFO] [stdout] test proxy2::stage::tests::upstream_us_from_spans__zero_when_neither_present ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::process__http_request_returns_http_response ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::open_get_sse__forwards_notifications_unmodified ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::open_get_sse__upstream_405_passes_through ... ok
[INFO] [stdout] test proxy2::stage::tests::process__request_stages_run_before_router_in_declared_order ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::process__mcp_request_forwards_inbound_headers_to_upstream ... ok
[INFO] [stdout] test proxy2::tests::to_axum_response__json_upstream_batch_emits_array ... ok
[INFO] [stdout] test proxy2::tests::to_axum_response__json_upstream_returns_application_json ... ok
[INFO] [stdout] test proxy2::tests::to_axum_response__preserves_mcp_session_id ... ok
[INFO] [stdout] test proxy2::tests::to_axum_response__sse_upstream_batch_emits_one_frame_per_result ... ok
[INFO] [stdout] test proxy2::tests::to_axum_response__sse_upstream_returns_event_stream ... ok
[INFO] [stdout] test proxy2::tests::to_axum_response__sse_upstream_roundtrips_through_decoder ... ok
[INFO] [stdout] test proxy2::tests::to_axum_response__stream_emits_one_frame_per_yielded_item ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::open_get_sse__strips_upstream_hop_by_hop_headers ... ok
[INFO] [stdout] test proxy2::tests::to_axum_response__stream_preserves_mcp_session_id ... ok
[INFO] [stdout] test proxy2::tests::to_axum_response__stream_roundtrips_through_decoder ... ok
[INFO] [stdout] test proxy2::tests::to_axum_response__stream_emits_text_event_stream ... ok
[INFO] [stdout] test proxy2::tests::to_axum_response__stream_strips_content_length_and_transfer_encoding ... ok
[INFO] [stdout] test proxy2::tests::to_axum_response__strips_content_length_and_transfer_encoding ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::process__mcp_request_propagates_jsonrpc_error_response ... ok
[INFO] [stdout] test proxy2::stage::router_stage::tests::open_get_sse__preserves_upstream_status_and_headers ... ok
[INFO] [stdout] test proxy2::stage::tests::process__request_stage_error_emits_orphan_event ... ok
[INFO] [stdout] test timer::tests::to_spans_us__closed_span_records_positive_duration ... ok
[INFO] [stdout] test timer::tests::to_spans_us__empty_timer_has_no_spans ... ok
[INFO] [stdout] test timer::tests::to_spans_us__keeps_duplicate_names_as_separate_entries ... ok
[INFO] [stdout] test proxy2::stage::tests::process__single_response_does_not_record_upstream_body_span ... ok
[INFO] [stdout] test timer::tests::to_spans_us__open_span_reports_zero ... ok
[INFO] [stdout] test timer::tests::to_spans_us__preserves_insertion_order ... ok
[INFO] [stdout] test utils::time::tests::format_latency_us__boundary_ms_to_s ... ok
[INFO] [stdout] test utils::time::tests::format_latency_us__boundary_us_to_ms ... ok
[INFO] [stdout] test proxy2::stage::tests::process__stream_records_upstream_body_span_closed_on_first_frame ... ok
[INFO] [stdout] test utils::time::tests::format_latency_us__ms_range ... ok
[INFO] [stdout] test utils::time::tests::format_latency_us__seconds_range ... ok
[INFO] [stdout] test utils::time::tests::format_latency_us__sub_ms ... ok
[INFO] [stdout] test proxy2::stage::tests::process__request_stage_error_short_circuits_router ... ok
[INFO] [stdout] test proxy2::stage::tests::process__response_stages_run_after_router_in_declared_order ... ok
[INFO] [stdout] test proxy2::tests::handle_request__get_sse_is_path_agnostic ... ok
[INFO] [stdout] test proxy2::tests::handle_request__get_with_event_stream_accept_opens_sse ... ok
[INFO] [stdout] test proxy2::stage::tests::process__stream_response_runs_stages_per_yielded_item ... ok
[INFO] [stdout] test proxy2::tests::build_app__discovery_route_absent_falls_through_to_upstream ... ok
[INFO] [stdout] test proxy2::tests::build_app__mounts_discovery_route_when_auth_configured ... ok
[INFO] [stdout] test proxy2::stage::tests::process__without_stages_runs_router_only ... ok
[INFO] [stdout] test proxy2::tests::handle_request__plain_get_falls_back_to_http_path ... ok
[INFO] [stdout] test proxy2::upstream::pool::tests::pick__distributes_across_shards ... ok
[INFO] [stdout] test proxy2::upstream::pool::tests::new__builds_pool_shards_clients ... ok
[INFO] [stdout] test proxy2::upstream::pool::tests::pick__same_id_returns_same_shard ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/mcpr_integrations-33b566a881640ccd)
[INFO] [stdout] test proxy2::upstream::pool::tests::multiple_pools__route_to_their_own_upstream ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 414 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.98s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 158 tests
[INFO] [stdout] test cloud_client::tests::cloud_error_display__with_status ... ok
[INFO] [stdout] test cloud_client::tests::cli_verify__invalid_code ... ok
[INFO] [stdout] test cloud_client::tests::cli_login__success ... ok
[INFO] [stdout] test cloud_client::tests::cli_verify__success ... ok
[INFO] [stdout] test cloud_client::tests::new__starts_unauthenticated ... ok
[INFO] [stdout] test cloud_client::tests::new__strips_trailing_slash ... ok
[INFO] [stdout] test cloud_client::tests::server_display ... ok
[INFO] [stdout] test cloud_client::tests::set_jwt__makes_authenticated ... ok
[INFO] [stdout] test cloud_client::tests::create_project_token__null_name ... ok
[INFO] [stdout] test cloud_client::tests::create_endpoint__success ... ok
[INFO] [stdout] test cloud_client::tests::create_project_token__success ... ok
[INFO] [stdout] test cloud_client::tests::cli_login__server_error ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__http_request_tagged_with_method_path_and_size ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__http_response_includes_status_and_size ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__mcp_request_includes_rpc_envelope ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__mcp_request_tools_call_preserves_params ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__mcp_batch_request_includes_each_rpc ... ok
[INFO] [stdout] test cloud_client::tests::parse_response__extracts_error_field ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__mcp_response_ok_serializes_result ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__orphan_transaction_emits_null_response ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__schema_emits_ts_in_seconds ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__session_emits_ts_in_seconds ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__session_includes_id_state_and_client ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__session_without_client_emits_nulls ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__transaction_emits_ts_in_seconds_from_event ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__transaction_carries_latency_fields ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__transaction_session_id_falls_back_to_response_header ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__transaction_session_id_from_request_header ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__transaction_session_id_null_when_absent ... ok
[INFO] [stdout] test cloud_client::tests::cloud_error_display__without_status ... ok
[INFO] [stdout] test cloud_client::tests::endpoint_display ... ok
[INFO] [stdout] test store::config::tests::file_store_config__default_is_valid ... ok
[INFO] [stdout] test cloud_client::tests::create_project__success ... ok
[INFO] [stdout] test cloud_client::tests::list_endpoints__routes_to_server ... ok
[INFO] [stdout] test store::config::tests::file_store_config__empty_path_is_error ... ok
[INFO] [stdout] test cloud_client::tests::project_display ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__heartbeat_emits_ts_in_seconds_from_event ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__mcp_response_error_includes_code_and_message ... ok
[INFO] [stdout] test sinks::stderr_sink::tests::json__transaction_includes_request_id ... ok
[INFO] [stdout] test store::config::tests::file_store_config__parses_from_toml ... ok
[INFO] [stdout] test store::duration::tests::parse_duration__days ... ok
[INFO] [stdout] test store::duration::tests::parse_duration__hours ... ok
[INFO] [stdout] test cloud_client::tests::create_server__success ... ok
[INFO] [stdout] test store::duration::tests::parse_duration__empty_string ... ok
[INFO] [stdout] test store::duration::tests::parse_duration__invalid_number ... ok
[INFO] [stdout] test store::duration::tests::parse_duration__invalid_suffix ... ok
[INFO] [stdout] test cloud_client::tests::parse_response__falls_back_to_raw_body ... ok
[INFO] [stdout] test cloud_client::tests::list_projects__empty_list ... ok
[INFO] [stdout] test store::duration::tests::parse_duration__minutes ... ok
[INFO] [stdout] test store::duration::tests::parse_duration__seconds ... ok
[INFO] [stdout] test store::duration::tests::parse_duration__weeks ... ok
[INFO] [stdout] test store::path::tests::resolve_db_path__explicit_config_wins ... ok
[INFO] [stdout] test store::path::tests::resolve_db_path__platform_default_returns_some ... ok
[INFO] [stdout] test store::query::stats::tests::percentile__basic ... ok
[INFO] [stdout] test store::query::stats::tests::percentile__empty ... ok
[INFO] [stdout] test store::config::tests::file_store_config__disabled_is_valid ... ok
[INFO] [stdout] test store::query::stats::tests::percentile__single ... ok
[INFO] [stdout] test store::config::tests::file_store_config__empty_name_is_error ... ok
[INFO] [stdout] test cloud_client::tests::list_servers__routes_to_project ... ok
[INFO] [stdout] test cloud_client::tests::list_projects__sends_bearer_token ... ok
[INFO] [stdout] test store::path::tests::ensure_parent_dir__creates_dirs ... ok
[INFO] [stdout] test store::duration::tests::parse_duration__whitespace_handling ... ok
[INFO] [stdout] test store::query::tests::logs__error_code_present_in_row ... ok
[INFO] [stdout] test store::query::tests::latest_schema_row__none_when_missing ... ok
[INFO] [stdout] test store::query::tests::log_row__serializes_to_json ... ok
[INFO] [stdout] test store::query::tests::logs__empty_proxy ... ok
[INFO] [stdout] test store::query::tests::clients__proxy_none_returns_all ... ok
[INFO] [stdout] test store::db::tests::init_schema__fresh_db_creates_all_tables ... ok
[INFO] [stdout] test store::db::tests::init_schema__idempotent_on_repeat_call ... ok
[INFO] [stdout] test store::engine::tests::store__open_record_shutdown ... ok
[INFO] [stdout] test store::query::tests::log_row__latency_us_field ... ok
[INFO] [stdout] test store::query::tests::clients__aggregates_by_client ... ok
[INFO] [stdout] test store::query::tests::log_row__serialization_uses_us_field ... ok
[INFO] [stdout] test sinks::sqlite_sink::tests::name__is_sqlite ... ok
[INFO] [stdout] test store::query::tests::logs__filter_by_error_code_no_match ... ok
[INFO] [stdout] test store::query::tests::logs__filter_combined_session_and_method ... ok
[INFO] [stdout] test store::query::tests::schema_status__unknown ... ok
[INFO] [stdout] test store::query::tests::logs__filter_by_session_prefix ... ok
[INFO] [stdout] test store::query::tests::logs__proxy_none_returns_all ... ok
[INFO] [stdout] test store::query::tests::logs__since_returns_newer ... ok
[INFO] [stdout] test store::query::tests::logs__proxy_filter_excludes_other ... ok
[INFO] [stdout] test store::query::tests::schema_unused__empty_when_no_schema ... ok
[INFO] [stdout] test store::query::tests::logs__filter_by_method ... ok
[INFO] [stdout] test store::query::tests::logs__filter_by_session ... ok
[INFO] [stdout] test store::query::tests::logs__filter_by_tool ... ok
[INFO] [stdout] test store::query::tests::logs__filter_by_status ... ok
[INFO] [stdout] test store::query::tests::logs__returns_all_rows ... ok
[INFO] [stdout] test store::query::tests::logs__filter_by_error_code ... ok
[INFO] [stdout] test store::query::tests::client_row__serializes_to_json ... ok
[INFO] [stdout] test sinks::sqlite_sink::tests::on_event__forwards_request_to_store_with_proxy_tag ... ok
[INFO] [stdout] test store::query::tests::session_detail__serializes_to_json ... ok
[INFO] [stdout] test store::query::tests::slow__returns_above_threshold ... ok
[INFO] [stdout] test store::query::tests::session_detail__nonexistent_returns_none ... ok
[INFO] [stdout] test store::query::tests::slow__filter_by_tool ... ok
[INFO] [stdout] test store::query::tests::slow_since__excludes_at_boundary ... ok
[INFO] [stdout] test store::query::tests::sessions__returns_all ... ok
[INFO] [stdout] test store::query::tests::session_detail__returns_with_requests ... ok
[INFO] [stdout] test store::query::tests::sessions__filter_by_client ... ok
[INFO] [stdout] test store::query::tests::sessions__proxy_none_returns_all ... ok
[INFO] [stdout] test store::query::tests::slow__high_threshold_returns_empty ... ok
[INFO] [stdout] test store::query::tests::slow__proxy_none_returns_all ... ok
[INFO] [stdout] test store::query::tests::slow__exact_threshold_boundary ... ok
[INFO] [stdout] test store::query::tests::session_detail__closed_session ... ok
[INFO] [stdout] test store::query::tests::slow_since__respects_threshold ... ok
[INFO] [stdout] test store::query::tests::slow__threshold_us_precision ... ok
[INFO] [stdout] test store::query::tests::slow_since__returns_empty_when_no_new ... ok
[INFO] [stdout] test store::query::tests::slow_since__returns_newer_rows ... ok
[INFO] [stdout] test store::query::tests::slow_since__respects_tool_filter ... ok
[INFO] [stdout] test store::query::tests::stats__empty_proxy ... ok
[INFO] [stdout] test store::query::tests::stats__proxy_filter_scopes_to_one ... ok
[INFO] [stdout] test store::writer::tests::flush_batch__duplicate_request_id_is_ignored ... ok
[INFO] [stdout] test store::writer::tests::flush_batch__inserts_request_row_for_mcp ... ok
[INFO] [stdout] test store::query::tests::vacuum__dry_run_counts_correctly ... ok
[INFO] [stdout] test store::query::tests::stats__proxy_none_aggregates_all ... ok
[INFO] [stdout] test store::query::tests::stats__serialization_uses_us_field_names ... ok
[INFO] [stdout] test store::query::tests::stats__latency_us_values ... ok
[INFO] [stdout] test store::query::tests::stats__aggregates_correctly ... ok
[INFO] [stdout] test store::writer::tests::method_str__known_variants_use_static_str ... ok
[INFO] [stdout] test store::writer::tests::method_str__unknown_uses_owned_string ... ok
[INFO] [stdout] test wire::tests::encode_envelope__batch_attaches_same_openai_to_each_envelope ... ok
[INFO] [stdout] test wire::tests::encode_envelope__http_carries_method_uri_status_and_sizes ... ok
[INFO] [stdout] test wire::tests::encode_envelope__http_orphan_zero_status_and_response_size ... ok
[INFO] [stdout] test wire::tests::encode_envelope__includes_openai_block_when_present ... ok
[INFO] [stdout] test wire::tests::encode_envelope__mcp_batch_flattens_to_one_per_rpc_with_paired_result ... ok
[INFO] [stdout] test wire::tests::encode_envelope__mcp_batch_orphan_emits_no_result_per_rpc ... ok
[INFO] [stdout] test wire::tests::encode_envelope__mcp_carries_full_result_envelope_and_timing ... ok
[INFO] [stdout] test wire::tests::encode_envelope__mcp_error_carries_full_error_envelope ... ok
[INFO] [stdout] test wire::tests::encode_envelope__mcp_payload_carries_full_rpc_envelope ... ok
[INFO] [stdout] test store::writer::tests::flush_batch__inserts_response_ok ... ok
[INFO] [stdout] test wire::tests::encode_envelope__mcp_session_id_falls_back_to_response_header ... ok
[INFO] [stdout] test wire::tests::encode_envelope__mcp_session_id_from_request_header ... ok
[INFO] [stdout] test wire::tests::encode_envelope__mcp_session_id_is_empty_when_absent_everywhere ... ok
[INFO] [stdout] test store::query::tests::stats__serializes_to_json ... ok
[INFO] [stdout] test store::query::tests::vacuum__actually_deletes ... ok
[INFO] [stdout] test store::writer::tests::flush_batch__orphan_transaction_writes_request_only ... ok
[INFO] [stdout] test wire::tests::encode_envelope__partial_openai_omits_none_fields ... ok
[INFO] [stdout] test wire::tests::encode_envelope__ts_comes_from_event_not_encode_time ... ok
[INFO] [stdout] test wire::tests::encode_envelopes__orphan_emits_one_envelope_without_result ... ok
[INFO] [stdout] test store::writer::tests::flush_batch__bare_jsonrpc_error_drops_response_row ... ok
[INFO] [stdout] test wire::tests::encode_schema__prompt_resource_template_kinds ... ok
[INFO] [stdout] test wire::tests::encode_heartbeat__carries_status_and_address ... ok
[INFO] [stdout] test wire::tests::encode_schema__tool_carries_full_definition ... ok
[INFO] [stdout] test wire::tests::encode_session__active_with_client_info ... ok
[INFO] [stdout] test wire::tests::envelope__includes_auth_block_when_credential_present ... ok
[INFO] [stdout] test wire::tests::envelope__includes_www_authenticate_when_challenged ... ok
[INFO] [stdout] test wire::tests::envelope__omits_auth_keys_when_absent ... ok
[INFO] [stdout] test store::writer::tests::flush_batch__skips_http_request_silently ... ok
[INFO] [stdout] test store::writer::tests::flush_batch__upserts_session_active ... ok
[INFO] [stdout] test store::writer::tests::flush_batch__schema_payload_change_appends_change_row ... ok
[INFO] [stdout] test store::writer::tests::flush_batch__schema_first_seen_writes_item_and_change_with_null_old_hash ... ok
[INFO] [stdout] test store::writer::tests::request_log_view__joins_when_session_ids_match ... ok
[INFO] [stdout] test store::writer::tests::flush_batch__unfolds_mcp_batch_into_n_rows ... ok
[INFO] [stdout] test store::writer::tests::flush_batch__schema_identical_payload_does_not_log_change ... ok
[INFO] [stdout] test wire::tests::encode_envelopes__transaction_emits_one_merged_envelope ... ok
[INFO] [stdout] test store::writer::tests::flush_batch__upsert_preserves_created_at ... ok
[INFO] [stdout] test store::writer::tests::request_log_view__pending_when_response_session_unknown ... ok
[INFO] [stdout] test wire::tests::encode_envelope__omits_openai_key_when_event_has_none ... ok
[INFO] [stdout] test store::query::tests::session_detail__requests_ordered_oldest_first ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 158 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/mcpr-1fe803bb41d3aa1c)
[INFO] [stdout] running 60 tests
[INFO] [stdout] test cmd::setup::tests::build_config__local_only ... ok
[INFO] [stdout] test cmd::setup::tests::build_config__custom_cloud_url ... ok
[INFO] [stdout] test cmd::setup::tests::cached_auth__serialization_roundtrip ... ok
[INFO] [stdout] test cmd::setup::tests::build_config__no_port_omits_line ... ok
[INFO] [stdout] test cmd::setup::tests::build_config__cloud_only ... ok
[INFO] [stdout] test cmd::setup::tests::default_local_name__fallback_on_empty ... ok
[INFO] [stdout] test cmd::setup::tests::default_local_name__strips_path ... ok
[INFO] [stdout] test cmd::setup::tests::default_local_name__uses_existing_name ... ok
[INFO] [stdout] test cmd::setup::tests::is_jwt_expired__just_outside_buffer ... ok
[INFO] [stdout] test cmd::setup::tests::is_jwt_expired__missing_exp_claim ... ok
[INFO] [stdout] test cmd::setup::tests::is_jwt_expired__past_token ... ok
[INFO] [stdout] test cmd::setup::tests::is_jwt_expired__within_5min_buffer ... ok
[INFO] [stdout] test cmd::setup::tests::is_jwt_expired__future_token ... ok
[INFO] [stdout] test cmd::setup::tests::build_config__with_explicit_port ... ok
[INFO] [stdout] test cmd::setup::tests::is_port_available__bound_port_is_unavailable ... ok
[INFO] [stdout] test cmd::setup::tests::is_jwt_expired__garbage_input ... ok
[INFO] [stdout] test cmd::setup::tests::default_local_name__derives_from_url ... ok
[INFO] [stdout] test cmd::setup::tests::is_port_available__free_port ... ok
[INFO] [stdout] test cmd::setup::tests::load_existing_config__missing_fields ... ok
[INFO] [stdout] test cmd::setup::tests::load_existing_config__invalid_toml ... ok
[INFO] [stdout] test cmd::setup::tests::slugify__leading_trailing_hyphens ... ok
[INFO] [stdout] test cmd::setup::tests::slugify__already_slug ... ok
[INFO] [stdout] test cmd::setup::tests::slugify__simple_name ... ok
[INFO] [stdout] test cmd::setup::tests::slugify__mixed_case ... ok
[INFO] [stdout] test config::tests::cloud_config__defaults_to_none ... ok
[INFO] [stdout] test cmd::setup::tests::load_existing_config__valid_toml ... ok
[INFO] [stdout] test config::tests::csp_config__canonical_overrides_legacy_when_both_present ... ok
[INFO] [stdout] test config::tests::cloud_config__empty_section_uses_defaults ... ok
[INFO] [stdout] test config::tests::cloud_config__parses_all_fields ... ok
[INFO] [stdout] test cmd::setup::tests::next_available_config__one_existing ... ok
[INFO] [stdout] test config::tests::cloud_config__partial_fields ... ok
[INFO] [stdout] test cmd::setup::tests::load_existing_config__missing_file ... ok
[INFO] [stdout] test config::tests::csp_config__canonical_shape_parses ... ok
[INFO] [stdout] test cmd::setup::tests::slugify__special_chars ... ok
[INFO] [stdout] test config::tests::csp_config__domain_parses ... ok
[INFO] [stdout] test cmd::setup::tests::next_available_config__gap_in_sequence ... ok
[INFO] [stdout] test config::tests::cloud_config__coexists_with_other_sections ... ok
[INFO] [stdout] test config::tests::csp_config__legacy_flat_shape_populates_connect_and_resource ... ok
[INFO] [stdout] test config::tests::file_config__max_concurrent_upstream ... ok
[INFO] [stdout] test config::tests::parse_mode__accepts_known_values ... ok
[INFO] [stdout] test config::tests::csp_config__legacy_override_maps_to_replace ... ok
[INFO] [stdout] test config::tests::file_config__body_size_defaults_to_none ... ok
[INFO] [stdout] test config::tests::resolve_proxy_name__mcpr_toml_becomes_default ... ok
[INFO] [stdout] test config::tests::resolve_proxy_name__no_config_becomes_default ... ok
[INFO] [stdout] test config::tests::resolve_proxy_name__preserves_hyphens ... ok
[INFO] [stdout] test config::tests::file_config__max_request_body_size ... ok
[INFO] [stdout] test config::tests::file_config__max_response_body_size ... ok
[INFO] [stdout] test config::tests::parse_mode__rejects_unknown ... ok
[INFO] [stdout] test config::tests::resolve_proxy_name__explicit_wins ... ok
[INFO] [stdout] test config::tests::resolve_proxy_name__sanitizes_special_chars ... ok
[INFO] [stdout] test config::tests::resolve_proxy_name__from_filename_stem ... ok
[INFO] [stdout] test logic::query::tests::parse_since__invalid ... ok
[INFO] [stdout] test logic::query::tests::parse_since__valid ... ok
[INFO] [stdout] test cmd::setup::tests::next_available_config__no_existing ... ok
[INFO] [stdout] test render::tests::format_bytes__units ... ok
[INFO] [stdout] test render::tests::format_ts__zero ... ok
[INFO] [stdout] test config::tests::file_config__name_from_toml ... ok
[INFO] [stdout] test config::tests::csp_config__domain_whitespace_is_trimmed_and_empty_ignored ... ok
[INFO] [stdout] test config::tests::csp_config__empty_defaults_strict_frames ... ok
[INFO] [stdout] test render::tests::format_ts__valid ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 60 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests mcpr_core
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test crates/mcpr-core/src/config.rs - config::ModuleConfig (line 107) ... ignored
[INFO] [stdout] test crates/mcpr-core/src/config.rs - config::ModuleConfig (line 76) ... ignored
[INFO] [stdout] test crates/mcpr-core/src/event/manager.rs - event::manager (line 3) ... ignored
[INFO] [stdout] test crates/mcpr-core/src/event/mod.rs - event (line 13) ... ignored
[INFO] [stdout] test crates/mcpr-core/src/event/sink.rs - event::sink::EventSink (line 10) ... ignored
[INFO] [stdout] test crates/mcpr-core/src/utils/time.rs - utils::time::format_latency_us (line 12) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.62s; merged doctests compilation took 1.35s
[INFO] [stderr]    Doc-tests mcpr_integrations
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test crates/mcpr-integrations/src/store/engine.rs - store::engine (line 13) ... ignored
[INFO] [stdout] test crates/mcpr-integrations/src/store/duration.rs - store::duration::parse_duration (line 25) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.72s; merged doctests compilation took 1.69s
[INFO] running `Command { std: "docker" "inspect" "3a39ff811fabf1475628fb4ac570197d527bf21b96093d26941a300b68855e70", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3a39ff811fabf1475628fb4ac570197d527bf21b96093d26941a300b68855e70", kill_on_drop: false }`
[INFO] [stdout] 3a39ff811fabf1475628fb4ac570197d527bf21b96093d26941a300b68855e70
